//
//  AliMNSAccount.h
//  AlibabaCloudMNSiOS
//
//  Created by David Chen on 28/03/2017.
//  Copyright © 2017 AliCloud. All rights reserved.
//

#import "AliMNSClient.h"
#import "AliMNSQueue.h"
#import "AliMNSTopic.h"

#import "AliMNSRequest.h"
#import "AliMNSResponse.h"

/*
AliMNSAccount
 */
@interface AliMNSAccount : NSObject

@property NSString* mnsEndpoint;
@property NSString* mnsAccessId;
@property NSString* mnsAccessKey;
@property NSString* mnsSecurityToken;
@property AliMNSClient* mnsClient;

- (instancetype) initWithEndpoint:(NSString*) endpoint
                     withAccessId:(NSString*) accessId
                    withAccessKey:(NSString*) accessKey;

- (instancetype) initWithEndpoint:(NSString*) endpoint
                     withAccessId:(NSString*) accessId
                    withAccessKey:(NSString*) accessKey
                withSecurityToken:(NSString*) securityToken;

- (AliMNSClient*) getMNSClient;

- (AliMNSQueue*) getQueue:(NSString*)queueName;

- (AliMNSTopic*) getTopic:(NSString*)topicName;

-(NSArray*) listQueue:(NSString*) prefix
     withReturnNumber:(NSInteger)returnNumber
           withMarker:(NSString**) Marker;

-(NSArray*) listTopic:(NSString*) prefix
     withReturnNumber:(NSInteger)returnNumber
           withMarker:(NSString**) Marker;

-(void) updateTempAK:(NSString*) accessId
       withAccessKey:(NSString*) accessKey
    withSecuriyToken:(NSString*) securityToken;

@end

